package com.zxw.user.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.zxw.user.domain.dto.UserDTO;
import com.zxw.user.domain.dto.UserUpdateDTO;
import com.zxw.user.domain.entity.User;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zxw.user.domain.vo.*;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author Xuewei.Zhang
 * @since 2022-01-21
 */
public interface UserService extends IService<User> {


    IPage<UserDTO> getUserList(UserPageVO pageVO);

    User add(UserAddVO userAddVO);

    UserUpdateDTO getUserById(Long userId);

    void updateBase(UserUpdateVO userUpdateVO);

    Boolean delete(String userIds);

    /**
     * 更新部分信息：密码、状态
     * @param user
     */
    void updatePart(User user);

    /**
     * 重置密码
     * @param account 账号
     * @param code 验证码
     */
    void resetPassword(String account,String code);

    /**
     * 修改密码
     * @param userUpPassVO
     */
    void updatePassword(UserUpPassVO userUpPassVO);

    /**
     * 流程图用户注册
     * @param user
     * @return
     */
    String registerFromFlow(RegisterUserVO user);
}
